<?php
namespace App\Services;
use App\Models\CourseModel;
use App\Models\CourseTypeModel;

class CourseTypeService{
	/**
	 * 获取顶级分类列表
	 * @param int $pid
	 * @return object $ctlist
	 */
	public function getTypeList($pid=0){
		$ctlist = CourseTypeModel::where('pid',0)->where('isshow',1)->select('id','type_name')->get();
		return $ctlist;
	}

	/**
	 * 更新课程分类信息
	 * @param array $data
	 * @param int $id
	 * @return bool $res
	 */
	public function modifyCourseType($id,$data){
		$res = CourseTypeModel::where('id',$id)->update($data);
		return $res;
	}

	/**
	 * 获取课程分类详细信息
	 * @param int $id
	 * @return array $info
	 */
	public function getCourseTypeById($id){
		$info = CourseTypeModel::where('id',$id)
				->select('id','type_name','pid')
				->first()
				->toArray();
		return $info;
	}

	/**
	 * 获取课程分类详细信息
	 * @param string $ctname
	 * @param array $info
	 */
	public function getCourseTypeByName($ctname){
		$info = CourseTypeModel::where('type_name',$ctname)
				->select('id')
				->first();
		return $info;
	}


	/**
	 * 插入课程分类
	 * @param array $data;
	 * @return bool $res
	 */
	public function insertCourseType($data){
		$res = CourseTypeModel::insert($data);
		return $res;
	}

	/**
	 * 获取课程分类列表
	 * @param int $page_size
	 * @param string $keywords
	 * @return $course_list
	 */
	public function getCourseTypeList($page_size,$keywords='',$pid=0){
		$course_list = CourseTypeModel::orderBy('id','desc')
					->where('isshow',1)
					->where(function($query) use ($pid){
						if($pid > 0){
							$query->where('pid',$pid);
						}else{
							$query->where('pid','>',0);
						}
					})
					->where(function($query) use ($keywords){
						if($keywords != ''){
							$query->where('type_name',$keywords);
						}
					})
					->select('id','type_name','add_date','pid')
					->paginate($page_size);

		if(empty($course_list)){
			return FALSE;
		}else{
			foreach($course_list as $ctm=>$cst){
				$info = $this->getCourseTypeById($cst->pid);
				$course_list[$ctm]->ptype_name = $info['type_name'];
				unset($info);
			}
			return $course_list;
		}
	}

	/**
	 * 获取课程分类总数
	 * @return int $ctNum
	 */
	public function getCourseTypeCount(){
		$ctNum = CourseTypeModel::where('isshow',1)->count();
		return $ctNum;
	}
}